package reflect.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/*
 * java提供了一些元注解，这些注解是用来说明当前我们定义的注解的一些作用
 * @Target: 该注解用来说明我们当前定义的注解能够用在什么位置上，如果不指定，所有可以被应用的位置都可以使用该注解
 *          ElementType.TYPE: 可以被应用在类上
 *          ElementType.METHOD: 可以被应用在方法上
 *          ElementType.FIELD: 可以被应用在属性上
 *          ElementType.CONSTRUCTOR: 可以被应用在构造方法上
 *          ElementType.PARAMETER: 可以被应用在方法的参数上
 * @Retention: 保留级别
 *          对应三个值：
 *          RetentionPolicy.SOURCE: 只在源代码中保留，编译后被丢弃
 *          RetentionPolicy.CLASS: 在class文件中保留，但jvm加载class文件时丢弃
 *          RetentionPolicy.RUNTIME: 保留到运行时，jvm加载class文件时保留
 */
@Target({ElementType.TYPE,ElementType.FIELD})
@Retention(RetentionPolicy.CLASS)
public @interface AutoRunClass {
}
